🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / androidApp / src / google / kotlin / org / meshtastic / app / map / component / PulsingNodeChip.kt
Displaying Raw • Download
androidApp/src/google/kotlin/org/meshtastic/app/map/component/PulsingNodeChip.kt renovate/fastlane-2.x-lockfile (056eed64) Text, 2.61 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.app.map.component
Tff7b72import T7ee787androidx.compose.animation.core.Animatable
Tff7b72import T7ee787androidx.compose.animation.core.LinearEasing
Tff7b72import T7ee787androidx.compose.animation.core.tween
Tff7b72import T7ee787androidx.compose.foundation.layout.Box
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.LaunchedEffect
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.draw.drawWithContent
Tff7b72import T7ee787androidx.compose.ui.geometry.CornerRadius
Tff7b72import T7ee787androidx.compose.ui.graphics.Color
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787kotlinx.coroutines.launch
Tff7b72import T7ee787org.meshtastic.core.common.util.nowSeconds
Tff7b72import T7ee787org.meshtastic.core.model.Node
Tff7b72import T7ee787org.meshtastic.core.ui.component.NodeChip
Tff7b72import T7ee787org.meshtastic.feature.map.heardJustNow
T8b949e/** Peak alpha of the pulse highlight before it fades out. */
Tff7b72private Tff7b72const Tff7b72val Te6edf3PULSE_MAX_ALPHA Tff7b72= T79c0ff0.3f
Tf0883e@Composable
Tff7b72fun Td2a8ffPulsingNodeChipTb4b4b4(Te6edf3nodeTb4b4b4: Te6edf3NodeTb4b4b4, Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3animatedProgress Tff7b72= Te6edf3remember Tb4b4b4{ Te6edf3AnimatableTb4b4b4(T79c0ff0fTb4b4b4) Tb4b4b4}
Te6edf3LaunchedEffectTb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3heardJustNowTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3lastHeardTb4b4b4, Te6edf3nowSecondsTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3launch Tb4b4b4{
Te6edf3animatedProgressTb4b4b4.Te6edf3snapToTb4b4b4(T79c0ff0fTb4b4b4)
Te6edf3animatedProgressTb4b4b4.Te6edf3animateToTb4b4b4(
Te6edf3targetValue Tff7b72= T79c0ff1fTb4b4b4,
Te6edf3animationSpec Tff7b72= Te6edf3tweenTb4b4b4(Te6edf3durationMillis Tff7b72= T79c0ff1T79c0ff0T79c0ff0T79c0ff0Tb4b4b4, Te6edf3easing Tff7b72= Te6edf3LinearEasingTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Te6edf3BoxTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3modifierTb4b4b4.Te6edf3drawWithContent Tb4b4b4{
Te6edf3drawContentTb4b4b4(Tb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3animatedProgressTb4b4b4.Te6edf3value Tff7b72> T79c0ff0 Tff7b72&Tff7b72& Te6edf3animatedProgressTb4b4b4.Te6edf3value Tff7b72< T79c0ff1fTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3alpha Tff7b72= Tb4b4b4(T79c0ff1f Tff7b72- Te6edf3animatedProgressTb4b4b4.Te6edf3valueTb4b4b4) Tff7b72* Te6edf3PULSE_MAX_ALPHA
Te6edf3drawRoundRectTb4b4b4(
Te6edf3size Tff7b72= Te6edf3sizeTb4b4b4,
Te6edf3cornerRadius Tff7b72= Te6edf3CornerRadiusTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4.Te6edf3toPxTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3color Tff7b72= Te6edf3ColorTb4b4b4.Te6edf3WhiteTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= Te6edf3alphaTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3NodeChipTb4b4b4(Te6edf3node Tff7b72= Te6edf3nodeTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.2 - Generated in 0.03s